#ifndef CLOUD_AOPU_H
#define CLOUD_AOPU_H

#include "includes.h"
#include "cJSON.h"

typedef struct vdata_mqtt_gateway_info_t{
    char *account;
    char *sn;
    char *addr;

    char *rt;
    char *rf;
    char *gv;
    char *gm;
    char *gs;
    char *ghv;
    char *gsv;

    cJSON *node;
}vdata_mqtt_gateway_info_t;

typedef int(*vdata_mqtt_fun_t)(vdata_mqtt_gateway_info_t *gateway, char *out);

extern vdata_mqtt_gateway_info_t vdata_mqtt_gateway_info;

int vdata_register_req(vdata_mqtt_gateway_info_t *gateway, char *out);
int vdata_unregister_req(vdata_mqtt_gateway_info_t *gateway, char *out);
int vdata_ping_req(vdata_mqtt_gateway_info_t *gateway, char *out);
int vdata_get_device_list_resp(vdata_mqtt_gateway_info_t *gateway, char *out);
int vdata_report_device_status_notif(vdata_mqtt_gateway_info_t *gateway, char *out);
int vdata_report_data_notif1(vdata_mqtt_gateway_info_t *gateway, char *out);
int vdata_report_data_notif2(vdata_mqtt_gateway_info_t *gateway, char *out);
int vdata_report_data_notif3(vdata_mqtt_gateway_info_t *gateway, char *out);
int vdata_send_sevice_command_resp1(vdata_mqtt_gateway_info_t *gateway, char *out);
int vdata_send_sevice_command_resp2(vdata_mqtt_gateway_info_t *gateway, char *out);

#endif // CLOUD_AOPU_H
